1. Technical Field
The present invention generally relates to integrated circuit design tools and in particular to integrated circuit design tools that optimize area, performance, and signal integrity in integrated circuits.
2. Description of the Related Art
Existing methods have sought to improve the placement of negative-slack gates of a circuit in a physical synthesis flow. While several solutions to this problem exist, there are several drawbacks to these existing solutions. One major drawback of existing solutions is that these existing solutions consider only the placement of a single, movable gate within an integrated circuit design. In addition, existing physical synthesis optimization methods consider gates (i.e., clocked repeaters and unclocked repeaters, such as buffers and inverters) that are adjacent to a single, movable gate as unmovable. This designation of certain gates as unmovable can possibly over constrain gate placement optimization efforts.
One existing solution, known as the Rip Up and Move Boxes with Linear Evaluation (RUMBLE) utility, employs linear programming (LP) to consider the optimal placement of multiple gates under a linear delay model. Such use of LP assumes that subsequent buffer reinsertions (i.e., re-buffering) will be performed after the optimal gate locations have been ascertained. However, in later stages of refinement when re-buffering is not permitted, the linear delay model does not hold. Moreover, the presence of obstacles and keep-out regions on the chip circuit often limits the possible legal locations for a particular gate. When there are obstacles to gate placement, feasible candidate positions may need to be discretized, a task that cannot be performed by the LP formulation within RUMBLE.
Lastly, existing gate optimization techniques are based upon an exhaustive enumeration approach for finding an optimal solution to the problem of incremental timing-driven physical synthesis. Under exhaustive enumeration, every possible assignment of candidate locations for gate placement is attempted and solved. Thus, an exhaustive enumeration approach would fare poorly in large problem instances, as the number of possible gate assignments grows exponentially with the number of movable gates (i.e., with M movable gates and C candidates per gate, a total of MC gate assignments would be generated).